/**
 * 
 */
package com.yuanzi.base.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 系统角色枚举类
 * @author weiyx
 * @date 2017年7月3日
 */
public enum SystemRole {
	
	NONE_ROLE(0,"ROLE_NONE"),
	
	/** 教师 */
	TEACHER(1,"TEACHER"),
	
	/** 学生 */
	STUDENT(2,"STUDENT"),
	
	/** 学校管理员 */
	SCHOOL_ADMINISTRATOR(3,"SCHOOL_ADMINISTRATOR"),
	
	/** 工作室成员 */
	STUDIO_MEMBER(4, "STUDIO_MEMBER"),
	
	/** 工作室管理员 */
	STUDIO_ADMINISTRATOR(5, "STUDIO_ADMINISTRATOR"),
	
	/** 系统管理员 */
	ADMIN(6, "ADMIN"),
	
	/** 点点约课授权讲师 */
	DD_LECTURE(7, "DD_LECTURE"),
	
	/** 点点管理员 */
	DD_MANAGER(8, "DD_MANAGER");
	
	private int value;
	private String displayName;
	
	SystemRole(int value, String displayName){
		this.value = value;
		this.displayName = displayName;
	};
	
	public int getValue() {
		return value;
	}
	public String getDisplayName() {
		return displayName;
	}

	public static Map<Integer ,String> valueMap = new HashMap<>();
	public static Map<String ,Integer> displayNameMap = new HashMap<>();
	public static Map<Integer, SystemRole> valueEnumMap = new HashMap<>();
	static{
		for(SystemRole systemRole : SystemRole.values()){
			valueMap.put(systemRole.getValue(), systemRole.getDisplayName());
			displayNameMap.put(systemRole.getDisplayName(), systemRole.getValue());
			valueEnumMap.put(systemRole.getValue(), systemRole);
		}
	}
	
	public static String getDisplayName(Integer value){
		return valueMap.get(value);
	}
	
	public static Integer getValue(String displayName){
		return displayNameMap.get(displayName);
	}

	public static SystemRole valueOf(Integer value) {
		return valueEnumMap.get(value);
	}
}
